﻿namespace _13_C_中For删除集合元素以及漏删问题
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "For循环删除List集合某一项数据";

            List<string> colors = new List<string>() { "red", null, "green", "blue", "blue", "gray", "yellow", "white", "orange" };

            //for (int i = 0; i < colors.Count; i++)//集合长度发生变化 移除会漏元素
            //{
            //    if ("blue".Equals(colors[i]))//避免null调用Equals方法
            //    {
            //        colors.RemoveAt(i);
            //    }
            //}

            for (int i = colors.Count - 1; i >= 0; i--)//从后往前删除
            {
                if ("blue".Equals(colors[i]))//避免null调用Equals方法
                {
                    colors.RemoveAt(i);
                }
            }

            colors.ForEach(str => Console.WriteLine(str));
        }
    }
}
